
//
// A replay does not store the sprite list. This is still stored as part of the associated Game object.
//

class Replay
{
public:
    void InitRecording(Game &game, const string &player);
    
    void AddFrame(const Frame &f, ControllerState controller);
    
    void SaveToNewReplayFile();
    void Load(Game &game, const string &filename);

    inline const vector<Frame>& Frames() const
    {
        return _frames;
    }

    inline Game* SourceGame() const
    {
        return _game;
    }

private:
    Game* _game;
    string _player;
    string _filename;
    vector<Frame> _frames;
};
